package com.platform.car.service;

import com.platform.car.model.Parkinglot;
import com.platform.car.model.Parkuse;
import com.platform.common.base.service.BaseService;

import java.util.List;


public interface ParkinglotService extends BaseService<Parkinglot> {


    /**
     * 保存数据
     * @param parkinglot 实体对象
     * @return 实体id
     * @throws Exception 数据保存异常
     */
    public Integer insert(Parkinglot parkinglot) throws Exception;


    /**
     * 根据 id 批量删除
     * @param ids 要删除的id
     * @return 影响的行数
     * @throws Exception 数据删除异常
     */
    public Integer deleteByIds(String[] ids) throws Exception;

    /**
     * 根据 id 查找
     * @param id 实体id
     * @return 实体
     */
    public Parkinglot selectById(Integer id);

    /**
     * 根据 id 修改
     * @param parkinglot 带id的实体对象
     * @return 受影响的行数
     * @throws Exception 数据修改异常
     */
    public Integer updateById(Parkinglot parkinglot) throws Exception;

    /**
     * 根据停车场的ID,车位的状态或有无地锁查询
     * @param parkinglot
     * @return
     */
    List<Parkinglot> findByParkingId(Parkinglot parkinglot);

    /**
     * 根据用户的ID查询智能地锁且空闲
     * @param parkinglot
     * @return
     */
    List<Parkinglot> selectByParkingIdAndLock(Parkinglot parkinglot);

    /**
     * 取消预约：修改地锁和车位的状态
     * @param parkuse
     */
   void updateLotAndLock(Parkuse parkuse);
}
